來到了倒數第二天
真是快被榨乾了呢(還真是沒料 (┐「﹃゚。))
但說好寫三十篇技術文就是要灌滿三十天!!!
第一段參考文獻
首先我們知道Lucene能夠將字串直接拿來解析做查詢
爲了方便再把之前的東西貼過來
gt: > 大於(greater than)
lt: < 小於(less than)
gte: >= 大於或等於(greater than or equal to)
lte: <= 小於或等於(less than or equal to )
那樣的事情我們叫做
//關鍵詞有以下
y-Years、M-Months、w-Weeks、d-Days、h-Hours、H-Hours、m-Minutes、s-Seconds
對範圍搜所有三個可以共用的概念
1. Date Math
2. Date Math to round
3. 日期格式(依據預設日期格式與指定時區進行檢索)
假設今天想要查詢目前月整個月份,資料
gte就會查詢大於等於的日期(經過四捨五入)
lte就會查詢小於等於的日期(經過四捨五入)
假定 now 2020-10-13 (寫的文章時間)
//Date Math
{
"query": {
"range" : {
"createAt" : {
//這樣就會查詢出十月後的資料
"gte" : "now/M",
}
}
}
}
//這樣的話就等同於
//mysql:where createAt >= "2020-10-01 00:00:00"
//Date Math to round
{
"query": {
"range" : {
"createAt" : {
"gte" : "now-1d/d",
"lt" : "now/d"
}
}
}
}
//這樣的話就等同於
//mysql:where createAt >= "2020-10-13 00:00:00" and createAt < "2020-10-14 00:00:00"
//日期格式
{
"query": {
"range" : {
"createAt" : {
"gte": "13/10/2020",
"lte": "2021",
"format": "dd/MM/yyyy||yyyy",
"time_zone": "+08:00"
}
}
}
}
//mysql:where createAt >= "2020-10-13T00:00:00Z" and createAt < "2021-01-01T00:00:00.000Z"
欸~如果看官有這種感覺,那很有天份呢~
其實Bool query就是最少一個的布林子句所夠成
也就是說每個子句結果最後吐出都必須爲true or false
然而這個常出現的母集合其實只有四種子句
也就是我們上篇所提到的
POST _bulk
{"index":{"_index":"it_help","_type":"_doc","_id":"1"}}
{ "id" : 2,"content":"我愛臺灣,國慶快樂" }
{"index":{"_index":"it_help","_type":"_doc","_id":"2"}}
{ "id" : 2,"content":"我愛臺灣,國慶快樂" }
{"index":{"_index":"it_help","_type":"_doc","_id":"3"}}
{ "id" : 3,"content":"愛臺灣,國慶快樂" }
{"index":{"_index":"it_help","_type":"_doc","_id":"4"}}
{ "id" : 4,"content":"國慶快樂,全國愛臺灣" }
其中呢username=Field,jacky就是我們要找的值啦
參考文檔
下面列出比較常用的參數呢爲榮
第29篇終於結束了
來回去加班囉~